import axios from 'axios'
import Qs from 'qs'
// 创建ajax
let ajax = axios.create({
  baseURL: 'http://t151.cn/',
  timeout: 5000,
  withCredentials: true,
  // 这时候我们通过Qs.stringify转换为表单查询参数
  transformRequest: [function (data) {
    data = Qs.stringify(data)
    return data
  }],
  // 设置Content-Type
  headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})

// 添加一个请求拦截器
Vue.prototype.$ajax.interceptors.request.use(function (config) {
  // 在请求发送之前做一些事
  window.eventBus.$emit('Load', true)
  return config
}, function (error) {
  // 当出现请求错误是做一些事
  return Promise.reject(error)
})

// 添加一个返回拦截器
Vue.prototype.$ajax.interceptors.response.use(function (response) {
  // 对返回的数据进行一些处理
  window.eventBus.$emit('Load', false)
  if (response.data.status === '10000') {
    eventBus.$emit('pop', {
      show: true,
      title: '提示',
      content: response.data.message,
      callBack: (boolean) => { router.push('login') },
      pop: true
    })
  }
  return response
}, function (error) {
  // 对返回的错误进行一些处理
  window.eventBus.$emit('Load', false)
  if (error.message.includes('timeout')) {
    eventBus.$emit('pop', {
      show: true,
      title: '提示',
      content: '网络错误',
      callBack: function (boolean) {},
      pop: true
    })
  }

  return Promise.reject(error)
})
export { ajax }
